<?php
	/**
	 * 上传文件
	 * @param $path
	 * @return array|bool|string
	 */
	function upload($path){
		$upload = new \Think\Upload();// 实例化上传类
		$upload->maxSize = 314572800;// 设置附件上传大小
		$upload->exts = array(
			'jpg',
			'gif',
			'png',
			'jpeg',
		);// 设置附件上传类型
		$upload->rootPath = './' . C('UPLOADPATH'); // 设置附件上传根目录
		$upload->savePath = MODULE_NAME . '/' . $path . '/';
		// 上传单个文件
		//     $info   =   $upload->uploadOne($_FILES['photo1']);
		$info = $upload->upload();
		if( ! $info){// 上传错误提示错误信息
			return $upload->getError();

		}
		else{// 上传成功 获取上传文件信息
			//echo $info['savepath'].
			return $info;

		}

	}

	/**
	 * 获取base64内容
	 * @param $base
	 * @return string
	 */
	function getbase64content($base)
	{
		if (preg_match('/^(data:\s*image\/(\w+);base64,)(.*)/', $base, $title)) {
			if (in_array($title[2], array('jpg', 'gif', 'png', 'jpeg'))) {
				return base64_decode($title[3]);
			}
		} else {
			return base64_decode($base);
		}
	}
	/**
	 * 创建文件夹
	 * @param $savepath
	 * @return bool
	 */
	function checkdir($savepath)
	{
		if (!mkdirf($savepath)) {
			return false;
		} else {
			/* 检测目录是否可写 */
			if (!is_writable($savepath)) {
				return false;
			} else {
				return true;
			}
		}
	}

	function mkdirf($savepath)
	{
		$dir = $savepath;
		if (is_dir($dir)) {
			return true;
		}
		if (mkdir($dir, 0777, true)) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * base64上传文件
	 * @param $data //上传的数据 array
	 * @param $path //路径
	 * @param $ext
	 * @return mixed
	 * @internal param $tpye //1:本地 2:oss
	 *
	 */
	function uploadBase64file($data, $path='',$ext="png")
	{
		$result = false;
		foreach ($data as $name => $base) {
			$savepath = MODULE_NAME . '/' . $path . date('Y-m-d') . '/';
			$file = './' . C('UPLOADPATH') . $savepath;
			if (checkdir($file)) {
				$filename = uniqid() .".". $ext;
				file_put_contents($file . $filename, getbase64content($base));
				$result[$name] =C('UPLOADPATH') . $savepath . $filename;
			}
		}
		return $result;
	}

	/**
	 * 删除文件及文件夹
	 * @param $svndir
	 * @return bool
	 */
	function delsvndir($svndir){
		//先删除目录下的文件：
		$dh=opendir($svndir);
		while($file=readdir($dh)){
			if($file!="."&&$file!=".."){
				$fullpath=$svndir."/".$file;
				if(is_dir($fullpath)){
					delsvndir($fullpath);
				}else{
					unlink($fullpath);
				}
			}
		}
		closedir($dh);
		//删除目录文件夹
		if(rmdir($svndir)){
			return  true;
		}else{

			return false;
		}
	}